unit UnMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, UndataModule, UnDataModel, UnLogin,
  Menus, StdCtrls,UnModule ,UnBasestamGegevens,
  UnOnderzoekers, UnBeheerders;

type
  TMain = class(TForm)
    MainMenu1: TMainMenu;
    Applicatie: TMenuItem;
    Window1: TMenuItem;
    Login1: TMenuItem;
    LogOut1: TMenuItem;
    Afsluiten: TMenuItem;
    Stamgegevens1: TMenuItem;
    Onderzoeken1: TMenuItem;
    Lokaties: TMenuItem;
    Toewijzingen1: TMenuItem;
    Beheren1: TMenuItem;
    LokatieTypen1: TMenuItem;
    SensorTypen1: TMenuItem;
    Beheerders1: TMenuItem;
    Modules1: TMenuItem;
    Instellen1: TMenuItem;
    Rapportage1: TMenuItem;
    Gebruikers1: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure Login1Click(Sender: TObject);
    procedure AfsluitenClick(Sender: TObject);
    procedure LogOut1Click(Sender: TObject);
    procedure Onderzoeken1Click(Sender: TObject);
    procedure LokatiesClick(Sender: TObject);
    procedure SensorTypen1Click(Sender: TObject);
    procedure LokatieTypen1Click(Sender: TObject);
    procedure Instellen1Click(Sender: TObject);
    procedure Beheren1Click(Sender: TObject);
    procedure Beheerders1Click(Sender: TObject);
  private
    aBeheerder : TBeheerder;
    procedure CreateLogin;
    procedure StartStamForm(aForm : TStamgegevens);
  public
    aStatusLijst : TStringList;
    procedure enableMenu;
    property beheerder : TBeheerder read aBeheerder write aBeheerder;
  end;

var
  Main: TMain;

implementation

{$R *.dfm}

uses
  UnStamLokatieTypen,
  UnStamSensorTypen,
  UnStamOnderzoeken,
  UnStamLokatie;

procedure TMain.FormCreate(Sender: TObject);
begin
  aBeheerder   := TBeheerder.create(DmDataSets);
  aStatusLijst := TStringList.Create;
end;

procedure TMain.Instellen1Click(Sender: TObject);
var
  aModuleBeheer :  TModuleBeheer;
begin
  aModuleBeheer :=  TModuleBeheer.Create(self);
  DmDataSets.CdsModulebeheer.Open;
  DmDataSets.CdsSensorTypes.Open;
  DmDataSets.CdsConfiguratie.Open;
  DmDataSets.CdsLokatieBeheer.Open;
  DmDataSets.CdsOnderzoekbeheer.Open;
  aModuleBeheer.DmDataSets := DmDatasets;
end;

procedure TMain.Login1Click(Sender: TObject);
begin
CreateLogin;
end;

procedure TMain.LogOut1Click(Sender: TObject);
var
  MenuCount : integer;
begin
  Stamgegevens1.Enabled := false;
  Modules1.Enabled := false;
  Toewijzingen1.Enabled := false;
  Login1.Enabled := true;
  LogOut1.Enabled := false;
  Applicatie.Enabled := true;
  Caption := 'Phytotron beheer: afgemeld';
end;

procedure TMain.LokatiesClick(Sender: TObject);
begin
  DmDataSets.CdsLokatieBeheer.open;
  DmDataSets.CdsLokatieTypen.open;
  StartStamForm(TStamLokatie.Create(self));
end;

procedure TMain.LokatieTypen1Click(Sender: TObject);
begin
  DmDataSets.CdsLokatieTypen.Open;
  StartStamForm(TStamLokatieTypen.Create(self));
end;

procedure TMain.Onderzoeken1Click(Sender: TObject);
begin
  DmDataSets.CdsOnderzoekbeheer.Open;

  StartStamForm(TStamOnderzoeken.Create(self));
end;

procedure TMain.SensorTypen1Click(Sender: TObject);
begin
  DmDataSets.CdsSensorTypes.Open;
  StartStamForm(TStamSensortypen.Create(self));
end;

procedure TMain.StartStamForm(aForm : TStamgegevens);
begin
  aForm.DmDataSets := DmDataSets;
end;

procedure TMain.AfsluitenClick(Sender: TObject);
begin
  Close;
end;

procedure TMain.Beheerders1Click(Sender: TObject);
begin
  DmDataSets.CdsBeheerder.Open;
  DmDataSets.CdsGebruikers.Open;
  With TBeheerders.create(self) do
  DmDataSets := DmDataSets;
end;

procedure TMain.Beheren1Click(Sender: TObject);
begin
  DmDataSets.CdsOnderzoekbeheer.Open;
  DmDataSets.CdsGebruikers.Open;
  DmDataSets.CdsOnderzoekers.Open;
  With TOnderzoekers.Create(self) do
  DmDataSets := DmDataSets;
end;

procedure TMain.CreateLogin;
var
  Child: TLogin;
begin
  Child := TLogin.Create(self);
end;


procedure TMain.enableMenu;
var
  MenuCount : integer;
begin
  for MenuCount := 0 to MainMenu1.Items.Count - 1 do
  MainMenu1.Items[MenuCount].Enabled := true;
  Login1.Enabled := false;
  Stamgegevens1.Enabled := true;
  Modules1.Enabled := true;
  Toewijzingen1.Enabled := true;
  LogOut1.Enabled := true;
  Applicatie.Enabled := true;
  Caption := 'Phytotron beheer: aangemeld';
end;

end.
